stage4day4section5

Section5:Transformer

【謎】講義の動画で言ってる「この本」ってなに?

BERTまでのロードマップ

   Seq2Seq

   Encoder-Decoder Model

     ↓

   Transformer

   Encoder-Decoder Model × Attention

     ↓

    BERT

なので、

Seq2seqとTransformerを理解する。

■BERT1_Seq2seq

・Bert : Transformerが複数入ったもの

・Seq2seq : Sequence to Sequence(系列、日本語から英語)

 - RNN

 > 系列情報は順番が重要

 > 最終的に内部状態ベクトルを出力する

 - 言語モデル

 > 単語の並びに対して、事後確率最大を計算する

 > 決定的 : 0か1か ⇔ 確率分布

 > Start of sentence

 > 言語の自然な並び方を学習する

 - RNNが2つ連結したもの

 > 1つ目がエンコーダ、2つ目がデコーダ

 内部状態ベクトルを出力することエンコード

 デコーダは生成モデル

 両者の違いは初期値としてhが与えられるかどうか

 > デコーダのアウトプットに正解を与えれば、教師あり学習がend2endで行える

 > Googleの翻訳システムもRNNベースで、何層にもしたもの

 - Teacher Forcing

 > 正解ラベルを直接デコーダの入力にする

訓練とテストで状態が異なるので、テスト結果が悪い可能性がある

■BERT2_Transformer

・seq2seqの弱点

  - 長い文章に弱い、表現力が足りなくなる

  > 翻訳元の文章を一つのベクトル表現にしてしまうため。

・合計1となる重み付けで単語同士の関連付け

・対応関係において注意を払うべき対象を絞る

Transformer 2017年、爆誕

   -LSTMに次ぐ、次世代のユニットと言われている

   -特徴: RNNを使わない、Attentionだけ

・重要なモジュール4つ

1. 位置情報を付加

2. Attention機構  2015年  Attention is all you need.→だいぶ吹かしている

3. フィードフォワードで全結合層に流す

4. 未来の単語を見ないようにマスク

・注意機構には2種類

  - ソース・ターゲット注意機構

  > 受け取った情報に対して狙うべき、近い情報のみに注意

  - 自己注意機構

  > CNNの考え方に似ていて、周辺情報全ても考慮されるイメージ

  (文脈を反映した表現が得られる)

・フィードフォワードネットワーク

  - 位置情報を保持したまま順伝播させるような全結合層

・マルチヘッドアテンション

  - 8つに分けて、アンサンブル学習のイメージ

・デコーダ

  - セルフアテンションとソース・ターゲットアテンションの両方が使われている

・Add

  - 入出力の差分を学習させる

  - 学習、テストエラーの提言

・Norm

  - バッチ正規化

実装演習

lecture_chap1_exercise_public.ipynb

最後だけ、ランタイムエラーになる

RuntimeError: "index_select_out_cuda_impl" not implemented for 'Float'

となっている。

パイトーチのバージョンによるものらしい

参考)

https://github.com/wasiahmad/NeuralCodeSum/issues/26